package org.gongliang.jsmile.config.oss;

import java.io.InputStream;
import java.util.List;


/**
 * 文件存储服务抽象类
 * 
 * @author 亮仔
 * @date 2017-03-25 16:12
 */
public abstract class OSSService {

	/** 云存储配置信息 */
	public OSSConfig config;

	/**
	 * 文件上传
	 * 
	 * @param data
	 *            文件字节数组
	 * @param path
	 *            文件路径，包含文件名
	 * @return 返回http地址
	 */
	public abstract String upload(byte[] data, String path);

	/**
	 * 文件上传
	 * 
	 * @param inputStream
	 *            字节流
	 * @param path
	 *            文件路径，包含文件名
	 * @return 返回http地址
	 */
	public abstract String upload(InputStream inputStream, String path);

	/**
	 * 文件下载
	 * 
	 * @param path
	 *            文件路径，包含文件名
	 * @param localPath
	 *            下载至本地文件路径，包含文件名
	 * @return 返回下载路径
	 */
	public abstract String down(String path, String localPath);

	/**
	 * 文件删除
	 * 
	 * @param path
	 *            文件路径，包含文件名
	 */
	public abstract void delete(String path);

	/**
	 * 根据路径返回所有文件路径
	 * 
	 * @param path
	 * @return
	 */
	public abstract List<String> listFiles(String path);

}
